package com.nintendo.bubblechat.mapper;


import com.nintendo.bubblechat.entity.pojo.FriendsRequest;
import com.nintendo.bubblechat.entity.pojo.GroupChat;
import com.nintendo.bubblechat.entity.pojo.GroupChatMsg;
import com.nintendo.bubblechat.entity.vo.UsersVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.Date;
import java.util.List;

@Mapper
public interface FriendsRequestMapper {

    void saveRequest(FriendsRequest friendRequest);

    FriendsRequest findRequest(String sendUserId, String acceptUserId);

    List<String> findRequestIds(String acceptUserId);

    /**
     * 忽略 好友请求
     * @param request
     */
    void ignoreRequest(FriendsRequest request);

    /**
     * 通过好友请求
     * @param request
     */
    void pass(FriendsRequest request);

    /**
     * 获取好友列表
     * @param myUserId
     * @return
     */
    List<UsersVo> findMyFriends(String myUserId);

    void createGroup(String id, String createUserId, Date date, String friendId,String groupImage);

    /**
     * 查询我创建的群聊和我加入的群聊
     * @param myId
     * @return
     */
    List<GroupChat> findMyGroupAndIn(String myId);

    /**
     * 获取群组成员
     * @param groupId
     * @return
     */
    List<UsersVo> findGroupMembers(String groupId);

    /**
     * 保存群组聊天记录
     * @param groupChatMsg
     */
    void saveGroupChatMsg(GroupChatMsg groupChatMsg);

    /**
     * 根据群组id查询群组信息
     * @param groupId
     * @return
     */
    List<GroupChat> findGroupInfo(String groupId);
}